<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
       /* 
       题目描述：一只青蛙可以跳1级台阶或者2级台阶，求一个青蛙跳上n级台阶有多少种跳法。
       例：n = 2    output = 2  可以1 1；也可2
        n = 3 output = 4    可以12；111；21
        n = 7 output = 21
       */
      /*    
    1.确定状态：
        设f(n)为跳到第n个台阶的走法，我们分析，跳到n个台阶，只需要求f(n -1)有多少中和f(n - 2)有多少种，求和即可。本题是求排列数
    2.转移方程：
        f(n) = f(n - 1) + f(n - 2)
    3.初始条件和边界情况
        f(0) = 1,f(1) = 1
    4.计算顺序，从小到大
      */
        function Jump(n){
            // 初始化条件
            let f = new Array(n + 1).fill(0)
            f[0] = 1
            f[1] = 1
            // 状态转换方程
            for(let i = 2;i <= n; i++){
                f[i] = f[i - 1] + f[i - 2]
            }
            return f[n]
        }
        let n = 7
        console.log(Jump(n))
    </script>
</body>
</html>